本篇文章同步發表在 HKT 線上教室 部落格,線上影音教學課程已上架至 Udemy 和 Youtube 頻道。另外,想追蹤更多相關技術資訊,歡迎到 臉書粉絲專頁 按讚追蹤喔~
開發程式過程中,「備份程式碼歷程」是開發過程中很重要的一環,KT 在學生時代,萌懂剛開始自學程式時,備份方法是將整個資料夾目錄,複製一份且在目錄內留下類似「重要」、「讀我」、「先看我」、「修改記錄」的 txt 小記事本檔案,裡面文字說明這次修改了哪些內容,為什麼修改。然後將整個資料夾目錄打包,壓縮成zip檔。用 「奇摩」 信箱,附件方式,寄一份給自己。如果當下版本有問題,就回去調紀錄查看,是哪一版出錯,回溯到那一版,長時間下來,累積了很多重複的檔案很佔空間,這樣的備份程式碼方式,存在很多問題,且管理版本上很沒有效率。如果你目前也是用類似方式「備份程式碼」,這時 KT 強力推薦,一定要改用 git 來更有效率的備份管理程式碼。git 也是身為程式設計師,一定要點滿屬性的基本技能之一。
git 只記錄你修改過的檔案資料,不會每次修改紀錄都整包所有資料複製一份,如此一來大大的節省很多儲放空間。
git 可以很快速搜尋到,你提交(commit)留下的訊息,什麼時間點修改了哪些內容,哪幾隻檔案。
git 可以很快速切換到特定時間上的版本,或是只取出過往你想要的特定幾隻程式檔案,不用全部還原,不用面對要一切都要打掉從頭開始的命運。
git 超強大的整合程式碼功能,相當適合,多人開發的專案。
KT 強烈良心建議,將程式碼檔案放在雲端,不要將檔案放在個人電腦硬碟裡。因為誰都很難保證,自己的電腦萬年不壞,人品很好,資料不會全部消失。 KT 曾有過親身經歷,切身之痛,在預計繳交完工專案前一刻,電腦突然鬧脾氣,完全開不了機,那次慘痛經驗後,打死不論如何都要把程式提交到遠端備份,多一份安全保障。不然真的會欲哭無淚,叫天天不應,叫地地不靈。
程式碼儲存庫托管服務,專案屬性,主要分為 public 和 private
public 公開專案:
所有人都可以看到程式碼,適合開源跟大家分享自己的程式碼,可以選擇誰可以 commit 提交修改程式碼。
private 私有專案:
非公開,僅自己或工作群組可以查看或 commit 提交編修的程式碼。
坊間常使用的程式碼代管服務有:GitHub、Gitlab 和 Bitbucket。
過往 GitHub 私有專案是需要額外付費。從 2019年1月7日起,設定不公開程式碼,無限的私有專案,已經不用在額外付費,很多知名熱門的開源軟體,程式碼都放在 GitHub 代管服務網站。
附帶一提,GitHub 星星,有點類似臉書按讚 Like 的意思。
自從 GitHub 被微軟收購後,大家紛紛逃難到 Gitlab。Gitlab 同樣且提供無上限的公開與私有專案。
老牌免費無上限的私有專案,但免費限制僅供有8個人使用,若要更多人使用。則需要額外付費。所以被後起之秀 Gitlab 超越。
git 除了很帥,入門門檻較高的命令工具方式外,目前業界,普遍都會使用 Sourcetree 較平易近人友善的的圖形化介面來操作 git。
其他 git gui 圖形化介面工具軟體選擇:GitKraken、SmartGit、GitHub Desktop、TortoiseGit(俗稱:小烏龜)
加入 .gitignore,將不必要的專案環境參數設定檔給過濾掉 Android.gitignore
本機端個人電腦只是開發暫放用,真正的程式備份務必存放在遠端。KT 推薦使用 Github 或 Gitlab 程式碼托管服務。
Android Studio 目前提供良善整合 git 服務,且可以輕鬆將專案上傳到 Github
詳細 Git flow 流程圖
此圖片取自:git - 維基百科
git 真的可以很方便靈活備份程式碼來做使用,以這次鐵人賽「口罩地圖」專案來說,KT 將每一篇文章有實作內容的結果,放在各分支上。如圖:
為什麼會這麼做的主要原因是,這樣對於不熟悉 git 操作的同學們,可以直接下載每篇文章實作的結果,所以若該篇文章有實作,KT 會在文章最前面放置,該文章實作出來結果的下載點,如:
範例名稱:初始專案
開發人員:HKT (侯光燦)
程式語言:Kotlin
開發環境:Android Studio 4.1.1 & Android 11 & Kotlin 1.4.21
授權範圍:使用時必須註明出處且不得為商業目的之使用
範例下載點:點我下載
範例下載點,點擊下載之後是一個 zip 壓縮檔,同學們不會因為不曉得怎麼操作 git 而遠離這系列文章。zip 壓縮檔,直接解開後,透過 Android Studio 去開啟專案目錄即可以去做使用。重點如果該程式碼有錯誤或需要進行更新與維護,KT 直接提交程式碼到 github ,下載點連結不變,同學下載後即可以獲取到最新程式專案。不用每次更新都要自己手動重新打包壓縮檔,然後上傳到新載點,然後重新通知發佈更新下載點。git 是不是很方便呢?
HKT 線上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
Pro Git - 免費線上電子書
https://git-scm.com/book/zh-tw/v2
git - 維基百科
https://zh.wikipedia.org/wiki/Git
GitHub - 維基百科
https://zh.wikipedia.org/wiki/GitHub
那今天【iThome 鐵人賽】就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,追蹤喔!也歡迎大家將這篇文章分享給更多人喔。
我們明天再見囉!!!掰掰~